// pages/searchList/searchList.js
import { getSpecificPhoneData } from '../../utils/api'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 某品牌的所有手机列表信息
    specificPhoneList: [],
    // 是否降序
    isPriceDescend: true,
    isCommentDescend: true,
    sortList: [
      {
        name: '价格排序',
        isDescend: false
      },
      {
        name: '好评率排序',
        isDescend: false
      }
    ]
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    console.log(options);
    const { id, title } = options;
    // 设置页面标题
    wx.setNavigationBarTitle({
      title,
    });
    getSpecificPhoneData(id).then(res => {
      console.log(res.data.goods);
      const newData = res.data.goods.sort((a, b) => {
        return a.price * 1 - b.price * 1
      })

      this.setData(
        {
          specificPhoneList: newData
        }
      )
    }).catch(err => {
      console.log(err)
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  // 跳转到商品详情页
  toGoodDetail(e) {
    const { currentTarget: { dataset: { goodid, goodtitle } } } = e;
    console.log(goodid, goodtitle);
    wx.navigateTo({
      url: `/pages/detail/detail?goodid=${goodid}&title=${goodtitle}`,
    })
  },

  //切换排序的类型（升或降序）
  changeSort(e) {
    const { currentTarget: { dataset: { currentindex } } } = e;
    let newData = [];
    this.data.sortList[currentindex].isDescend = !this.data.sortList[currentindex].isDescend;
    console.log(currentindex);
    switch (currentindex) {
      case 0:
        if (this.data.sortList[currentindex].isDescend) {
          newData = this.data.specificPhoneList.sort((a, b) => {
            return b.price * 1 - a.price * 1
          })
        }
        else {
          newData = this.data.specificPhoneList.sort((a, b) => {
            return a.price * 1 - b.price * 1
          })
        }
        break;
      case 1:
        if (this.data.sortList[currentindex].isDescend) {
          newData = this.data.specificPhoneList.sort((a, b) => {
            return b.goodcomment.replace('%','') * 1 - a.goodcomment.replace('%','') * 1
          })
        }
        else {
          newData = this.data.specificPhoneList.sort((a, b) => {
            return a.goodcomment.replace('%','') * 1 - b.goodcomment.replace('%','') * 1
          })
        }
        break
      default:
        break;
    }
    
    this.setData({
      specificPhoneList: [...newData],
      sortList: [...this.data.sortList],
    })
  }
})